home *** CD-ROM | disk | FTP | other *** search
/ Skunkware 5 / Skunkware 5.iso / man / cat.1 / pcal.1 < prev    next >
Text File  |  1995-07-25  |  41KB  |  793 lines

  1.  
  2.  
  3.  
  4.      PPPPCCCCAAAALLLL((((1111))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   PPPPCCCCAAAALLLL((((1111))))
  5.  
  6.  
  7.  
  8.      NNNNAAAAMMMMEEEE
  9.           pcal - generate PostScript calendars
  10.  
  11.      SSSSYYYYNNNNOOOOPPPPSSSSIIIISSSS
  12.           ppppccccaaaallll [----eeee|----ffff _c_a_l] [----oooo _f_i_l_e] [----jjjj | ----JJJJ] [----llll | ----pppp] [----mmmm | ----MMMM]
  13.                [----bbbb _d_a_y|all] [----gggg _d_a_y|all] [----OOOO] [----GGGG]
  14.                [----ssss [[[[_d_a_t_e__s_h_a_d_e]]]][[[[////_f_i_l_l__s_h_a_d_e]]]]] [----FFFF _d_a_y] [----AAAA|----EEEE]
  15.                [----tttt _t_i_t_l_e__f_o_n_t] [----dddd _d_a_y__f_o_n_t] [----nnnn _t_e_x_t__f_o_n_t[/_s_i_z_e]]
  16.                [----LLLL _f_o_o_t_e_r__s_t_r] [----CCCC _f_o_o_t_e_r__s_t_r] [----RRRR _f_o_o_t_e_r__s_t_r]
  17.                [----NNNN _n_o_t_e_s__s_t_r] [----DDDD _s_y_m_b_o_l] [----UUUU _s_y_m_b_o_l] [----xxxx _x_s_c_a_l_e]
  18.                [----yyyy _y_s_c_a_l_e] [----XXXX _x_t_r_a_n_s] [----YYYY _y_t_r_a_n_s] [----IIII] [----BBBB]
  19.                [----SSSS | ----kkkk | ----KKKK] [----wwww] [----hhhh | ----uuuu | ----vvvv] [_m_o_n_t_h] [_y_e_a_r]
  20.                [_n_m_o_n_t_h_s]
  21.  
  22.      DDDDEEEESSSSCCCCRRRRIIIIPPPPTTTTIIIIOOOONNNN
  23.           _P_c_a_l generates PostScript to produce landscape or portrait
  24.           calendars for any month and year.  The arguments mmmmoooonnnntttthhhh,
  25.           yyyyeeeeaaaarrrr, and nnnnmmmmoooonnnntttthhhhssss, if provided, should be numeric.  The
  26.           mmmmoooonnnntttthhhh value should be in the range 1 - 12, and the yyyyeeeeaaaarrrr
  27.           value should be specified as 1 or 2 digits or as the full 4
  28.           digit year.  If no numeric arguments are provided, the
  29.           calendar for the current month and year will be generated.
  30.  
  31.           If one numeric argument is provided, it is interpreted as
  32.           the yyyyeeeeaaaarrrr value, and calendars for the entire year will be
  33.           generated.  Otherwise, nnnnmmmmoooonnnntttthhhhssss months, starting with mmmmoooonnnntttthhhh
  34.           and yyyyeeeeaaaarrrr, will be generated.
  35.  
  36.           For whole-year calendars (i.e. the ----wwww option is given), the
  37.           command line arguments are interpreted somewhat differently.
  38.           By default, all months in the current year are printed,
  39.           starting with January.  If the mmmmoooonnnntttthhhh argument alone is
  40.           given, it is expected to be the desired yyyyeeeeaaaarrrr to print, and
  41.           prints all of the months in the given year.  If both mmmmoooonnnntttthhhh
  42.           and yyyyeeeeaaaarrrr are given, then 12 consecutive months are printed
  43.           starting at the given month and year.  If the mmmmoooonnnntttthhhh, yyyyeeeeaaaarrrr,
  44.           and nnnnmmmmoooonnnntttthhhhssss arguments are all present, printing begins with
  45.           the given month and year and nnnnmmmmoooonnnntttthhhhssss months are printed,
  46.           rounded up to the nearest multiple of 12.
  47.  
  48.           TTTThhhheeee DDDDaaaatttteeee FFFFiiiilllleeee
  49.  
  50.           By default, _p_c_a_l simply prints an empty calendar.  Its real
  51.           power is in its ability to place ``events'' in appropriate
  52.           days on the calendar, thus allowing the user to create
  53.           personalized calendars.  This is achieved through the use of
  54.           the ``date file''.
  55.  
  56.           The date file is named ._c_a_l_e_n_d_a_r (_p_c_a_l._d_a_t under MS-DOS), or
  57.           _c_a_l_e_n_d_a_r for compatibility with older versions.  _P_c_a_l will
  58.           look in several places for such a file.  First, if the
  59.           environment variable PPPPCCCCAAAALLLL____DDDDIIIIRRRR is defined, _p_c_a_l searches the
  60.  
  61.  
  62.  
  63.      Page 1                                          (printed 6/30/95)
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.      PPPPCCCCAAAALLLL((((1111))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   PPPPCCCCAAAALLLL((((1111))))
  71.  
  72.  
  73.  
  74.           directory indicated by that variable.  Next, _p_c_a_l searches
  75.           the user's home directory (as specified by the HHHHOOOOMMMMEEEE
  76.           environment variable).  If neither PPPPCCCCAAAALLLL____DDDDIIIIRRRR nor HHHHOOOOMMMMEEEE is
  77.           defined, _p_c_a_l searches the current directory instead.
  78.           Finally, the directory where the _p_c_a_l executable resides
  79.           will be checked.  If no date file is found, an empty
  80.           calendar is printed; no error is generated.
  81.  
  82.           If a date file is found, it will be searched for lines with
  83.           leading dates matching the requested month and year.  Any
  84.           text following the dates found will be printed on the
  85.           calendar under the appropriate day of the month.  Dates in
  86.           the ._c_a_l_e_n_d_a_r file may be expressed in any of several
  87.           formats:
  88.  
  89.                <ordinal> <day_spec> in <month_spec>{*} {<text>}
  90.                <day_spec> <prep> <date_spec>{*} {<text>}
  91.                <date_spec>{*} {<text>}
  92.  
  93.           Where:
  94.  
  95.                <month_name>   := first 3+ characters of name of month, or ``all''
  96.                <month_spec>   := <month_name>, or ``year''
  97.                <day_spec>     := first 3+ characters of name of weekday, ``day'',
  98.                               ``weekday'', ``workday'', ``holiday'', ``nonweekday'',
  99.                               ``nonworkday'', ``nonholiday'', ``new_moon'',
  100.                               ``first_quarter'', ``full_moon'', or ``last_quarter''
  101.                <ordinal> := any ordinal number (``1st'', ``2nd'', etc.), ``first'' ... ``fifth'',
  102.                               ``last'', ``odd'', ``even'', or ``all''
  103.                <prep>         := ``before'', ``preceding'', ``after'', ``following'',
  104.                               ``on_or_before'' (``oob''), or ``on_or_after'' (``ooa'')
  105.                <sep>          := one or more non-numeric, non-space, non-`*' characters
  106.                <month>   := a numeric month (1-12)
  107.                <day>          := day of month (1-31)
  108.                <year>         := a numeric year
  109.  
  110.           If the ----AAAA option (American date formats, the default) is
  111.           given:
  112.  
  113.                <date_spec>    := <month_name> <day> | <month><sep><day>{<sep><year>}
  114.  
  115.           If the ----EEEE option (European date formats) is given:
  116.  
  117.                <date_spec>    := <month_name> <day> | <month><sep><day>{<sep><year>}
  118.  
  119.           _P_c_a_l also allows format specifiers in both the text and foot
  120.           strings (see the ----LLLL, ----CCCC, ----RRRR, and ----NNNN options below); each
  121.           will be replaced by a corresponding string as outlined in
  122.           the table below.  Most of these are derived from the ANSI C
  123.           strftime() ffffuuuunnnnccccttttiiiioooonnnn;;;; tttthhhheeee %%%%[[[[lllloooouuuuwwwwMMMMDDDD]]]] and %%%%[[[[oooo0000++++----]]]] format
  124.           specifiers are specific to _p_c_a_l:
  125.  
  126.  
  127.  
  128.  
  129.      Page 2                                          (printed 6/30/95)
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.      PPPPCCCCAAAALLLL((((1111))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   PPPPCCCCAAAALLLL((((1111))))
  137.  
  138.  
  139.  
  140.                %a   abbreviated weekday
  141.                %A   full weekday
  142.                %b   abbreviated month name
  143.                %B   full month name
  144.                %d   day of month (1-31)
  145.                %j   day of year (1-366)
  146.                %l   days left in year (0-365)
  147.                %m   month (1-12)
  148.                %U   week number (0-53)
  149.                %W   week number (0-53)
  150.                %u   week number (1-54)
  151.                %w   week number (1-54)
  152.                %y   year w/o century (00-99)
  153.                %Y   year w/century
  154.                %%   `%' character
  155.  
  156.                %o   print number as ordinal
  157.                %0   print number with leading zeroes
  158.                %+   use following month or year
  159.                %-   use previous month or year
  160.                %{+N}[DWMY]    adjust date by +N days/weeks/months/years
  161.                %{-N}[DWMY]    adjust date by -N days/weeks/months/years
  162.  
  163.           The %%%%uuuu specifier considers the week containing 1/1 as week 1
  164.           and the following logical Sunday (the first day of the week
  165.           as printed; cf. the ----FFFF option below) as the start of week 2;
  166.           %%%%UUUU considers the first logical Sunday as the first day of
  167.           week 1. %%%%wwww and %%%%WWWW behave like %%%%uuuu and %%%%UUUU respectively, but
  168.           use the first logical Monday instead.  Note that %%%%wwww
  169.           strftime().
  170.  
  171.           The %%%%oooo format specifier prints a number as an ordinal, with
  172.           the appropriate suffix (``st'', ``nd'', ``rd'', or ``th'' in
  173.           English) appended.  For example, %%%%oooodddd prints the day of the
  174.           month as ``1st'', ``2nd'', ``3rd'', etc.
  175.  
  176.           Unlike strftime(), _p_c_a_l defaults to printing numbers (except
  177.           %%%%yyyy) without leading zeroes.  If leading zeroes are desired,
  178.           the `0' prefix may be used.  For example, %%%%0000jjjj prints the
  179.           first day of year as ``001''.
  180.  
  181.           The %%%%++++ and %%%%---- format specifiers direct _p_c_a_l to substitute
  182.           the following/previous month/year in the following [[[[bbbbBBBBmmmmyyyyYYYY]]]]
  183.           specifier.  For example, %%%%++++BBBB prints the name of the next
  184.           month.
  185.  
  186.           The %%%%{{{{[[[[++++----]]]]NNNN}}}}[[[[DDDDWWWWMMMMYYYY]]]] format specifiers do not print anything,
  187.           but instead adjust the working date by +_ NNNNdays (DDDD), weeks
  188.           (WWWW), months (MMMM), or years (YYYY).  Subsequent format specifiers
  189.           use the adjusted date instead of the current date.  For
  190.           example, %%%%++++1111MMMM %%%%BBBB %%%%YYYY adjusts the date forward by one month
  191.           and then prints the resulting month and year (``January
  192.  
  193.  
  194.  
  195.      Page 3                                          (printed 6/30/95)
  196.  
  197.  
  198.  
  199.  
  200.  
  201.  
  202.      PPPPCCCCAAAALLLL((((1111))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   PPPPCCCCAAAALLLL((((1111))))
  203.  
  204.  
  205.  
  206.           1992'' in December, 1991); %%%%----2222WWWW %%%%bbbb %%%%dddd adjusts the date
  207.           backward by two weeks and prints the resulting month and day
  208.           (``Jul 26'' on August 9).
  209.  
  210.           Such date adjustments are normally cumulative; for example,
  211.           %%%%++++1111YYYY%%%%----1111DDDD adjusts the date forward by one year and then
  212.           backward by one day.  If %%%%DDDD or %%%%MMMM is specified alone (or if
  213.           NNNN is zero), _p_c_a_l restores the original date.  Note that %%%%MMMM
  214.           has a different meaning to the strftime() ffffuuuunnnnccccttttiiiioooonnnn....
  215.  
  216.           The ``Notes'' box (see below) uses the first of the current
  217.           month as the default date.  All foot strings use the first
  218.           of the current month in single-month mode and the first of
  219.           the starting month in whole-year mode.
  220.  
  221.           Examples:
  222.  
  223.                last Monday in May*         Memorial Day Holiday
  224.  
  225.                all Fridays in Oct          Status Meeting, 11 AM
  226.                first workday in all        %-B progress report due
  227.                all Fri in all              Time card due, 3 PM
  228.                all Monday in all           Fiscal week %0W
  229.                -2nd workday in all         Schedule for %+B due %+2D
  230.                2nd full_moon in all        Blue Moon
  231.                Fri on_or_before all 15     Pay Day
  232.                even Fridays in year        Pay Day
  233.                183rd day of year           Mid-year (%l days left)
  234.  
  235.                Tue after first Mon in Nov  Election Day (USA)
  236.  
  237.                4th Thu in Nov*             Thanksgiving
  238.                Fri after 4th Thu in Nov*   Day after Thanksgiving
  239.  
  240.                12/25/90*                   Christmas     # American
  241.                25.12.90*                   Christmas     # European
  242.  
  243.                Dec 25*                     Christmas     # American
  244.                25 Dec*                     Christmas     # European
  245.  
  246.           Any non-numeric character may separate numeric dates.
  247.           Holidays may be flagged by following the date immediately
  248.           with `*' as in the examples above; this will cause the date
  249.           to be printed in gray.  ``Each'' and ``every'' are accepted
  250.           as synonyms for ``all'', and any word may be used in place
  251.           of ``in''.  The abbreviations ``oob'' and ``ooa'' may be
  252.           used in place of the keywords ``on_or_before'' and
  253.           ``on_or_after'', respectively.  ``Nearest'' attempts to
  254.           match the specified date; if that fails, it tries the day
  255.           after, then the day before, then two days after, two days
  256.           before, and so forth until a match occurs.
  257.  
  258.  
  259.  
  260.  
  261.      Page 4                                          (printed 6/30/95)
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.      PPPPCCCCAAAALLLL((((1111))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   PPPPCCCCAAAALLLL((((1111))))
  269.  
  270.  
  271.  
  272.           Wildcard day names are also provided.  The keyword
  273.           ``weekday'' applies to any days which are normally printed
  274.           in black on the calendar.  The keyword ``workday'' is the
  275.           same, but does not include any holidays.  The keyword
  276.           ``holiday'' includes only those days flagged as holidays.
  277.           The keywords ``nonweekday'', ``nonworkday'', and
  278.           ``nonholiday'' are also recognized as negations of the
  279.           above.  See the CCCCAAAAVVVVEEEEAAAATTTTSSSS below for important notes on using
  280.           these keywords.  Moon phases may also appear as wildcards;
  281.           ``nm'' is accepted as a synonym for ``new_moon'', ``1q'' and
  282.           ``fq'' for ``first_quarter'', ``fm'' for ``full_moon'',
  283.           ``3q'' for ``third_quarter'', and ``lq'' for
  284.           ``last_quarter''.
  285.  
  286.           Ordinal day numbers may be used to specify dates, either
  287.           relative to the month or to the year.  Either words or
  288.           numeric abbreviations may be used for ``first'' through
  289.           ``fifth''; higher numbers must be given using the numeric
  290.           equivalent (e.g. 100th).  Negative ordinal numbers may even
  291.           be used.  For example, ``-2nd'' means ``next to last''.
  292.  
  293.           ``Odd'' and ``even'' do not refer to the actual date;
  294.           instead, ``odd'' means ``alternate, starting with the
  295.           first'', and ``even'' means ``alternate, starting with the
  296.           second''.  Thus, ``odd Fridays in March'' refers to the
  297.           first, third, and (if present) fifth Fridays in March - not
  298.           to those Fridays falling on odd dates.
  299.  
  300.           ``All'' refers to each individual month; ``year'' refers to
  301.           the year as an entity.  Thus ``odd Fridays in all'' refers
  302.           to the first, third, and fifth Friday of each month, while
  303.           ``odd Fridays in year'' refers to the first Friday of
  304.           January and every other Friday thereafter.
  305.  
  306.           Text in the date file may use C-like escape sequences (i.e.
  307.           a `\' followed by a character, 1 - 3 octal digits, or `x'
  308.           followed by 1 - 2 hexadecimal digits).  Escaped whitespace
  309.           (including nnnneeeewwwwlllliiiinnnneeee ) and the standard ANSI character escapes
  310.           (`\a', `\b', `\f', `\n', `\r', `\t', `\v') are all replaced
  311.           by a single blank.
  312.  
  313.           Lines in the ._c_a_l_e_n_d_a_r file consisting of yyyyeeeeaaaarrrr ################ (where
  314.           ################ is a numeric year) can be used to set the year for
  315.           following entries.  This assumes that the following entries
  316.           do not contain a year; any date entries containing year
  317.           information will set the remembered year to that year.
  318.  
  319.           Lines in the ._c_a_l_e_n_d_a_r file consisting of oooopppptttt <<<<ooooppppttttiiiioooonnnnssss>>>> can
  320.           be used to override the defaults for any command-line
  321.           options except ----cccc, ----eeee, ----ffff, ----hhhh, ----uuuu, ----vvvv, ----DDDD, and ----UUUU.  Any
  322.           options specified in this manner are, in turn, overridden by
  323.           those specified explicitly on the command line.
  324.  
  325.  
  326.  
  327.      Page 5                                          (printed 6/30/95)
  328.  
  329.  
  330.  
  331.  
  332.  
  333.  
  334.      PPPPCCCCAAAALLLL((((1111))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   PPPPCCCCAAAALLLL((((1111))))
  335.  
  336.  
  337.  
  338.           Lines in the ._c_a_l_e_n_d_a_r file consisting of nnnnooootttteeee{{{{////<<<<nnnnuuuummmmbbbbeeeerrrr>>>>}}}}
  339.           <<<<mmmmoooonnnntttthhhh>>>> can be used to place notes regarding the entire
  340.           month in one of the unused blocks of the calendar.  The
  341.           <<<<mmmmoooonnnntttthhhh>>>> indicator may be either a number 1 through 12 or an
  342.           alphabetic month name as described above;  ``note all'' will
  343.           place the associated text in the notes block for each month
  344.           in the current year.  <<<<nnnnuuuummmmbbbbeeeerrrr>>>> is an optional positive or
  345.           negative number specifying the empty box where the
  346.           associated text is to be placed.  If positive, _p_c_a_l counts
  347.           forward from the first empty box; if negative, _p_c_a_l counts
  348.           backward from the last empty box.  Thus, ````````nnnnooootttteeee////1111'''''''' places
  349.           the associated text in the first empty box; nnnnooootttteeee////----3333 in the
  350.           third-to-last.  The default is -1 if no <number> is given
  351.           (last empty box, immediately preceding the small calendars
  352.           on the bottom row; cf.  ----SSSS, ----kkkk, and ----KKKK, below).
  353.  
  354.           Comments are supported in the ._c_a_l_e_n_d_a_r file.  Any
  355.           characters following a `#' character through the end of the
  356.           line are ignored.
  357.  
  358.           _P_c_a_l supports rudimentary _c_p_p-like functionality in the date
  359.           file, allowing the following constructs: ddddeeeeffffiiiinnnneeee |||| uuuunnnnddddeeeeffff,
  360.           iiiiffff{{{{{{{{nnnn}}}}ddddeeeeffff}}}} ............ {{{{eeeelllliiiiffff ............}}}}**** {{{{eeeellllsssseeee ............}}}} and iiiinnnncccclllluuuuddddeeee.  Note
  361.           that these are not preceded by `#' as they are in C.  Symbol
  362.           names defined using these keywords (or via the ----DDDD option)
  363.           are case-insensitive.  It is not an error to uuuunnnnddddeeeeffff an
  364.           undefined symbol, nor to ddddeeeeffffiiiinnnneeee a previously-defined one.
  365.           An iiiiffffddddeeeeffff alone is always ffffaaaallllsssseeee; an iiiiffffnnnnddddeeeeffff alone is always
  366.           ttttrrrruuuueeee.  iiiiffff is accepted as a synonym for iiiiffffddddeeeeffff.
  367.  
  368.           The name of the file in the iiiinnnncccclllluuuuddddeeee directive may optionally
  369.           be surrounded by either "" or <>, both of which are ignored.
  370.           If the name is not an absolute path, it is taken to be
  371.           relative to the directory where the file containing the
  372.           directive is located.  _P_c_a_l is smart enough to translate ~~~~////
  373.           to the user's home directory.
  374.  
  375.           In addition to pre-processing keywords, _p_c_a_l also accepts
  376.           boolean expressions in iiiiffff{{{{{{{{nnnn}}}}ddddeeeeffff}}}} and eeeelllliiiiffff directives.
  377.           These expressions consist of symbol names joined by the
  378.           boolean operators !!!!, &&&&, ^^^^, and ||||, in order of precedence,
  379.           high to low.  Parentheses may be used to alter the
  380.           precedence.  The synonyms &&&&&&&& and |||||||| are accepted for &&&& and
  381.           ||||.  A symbol name evaluates to ttttrrrruuuueeee if currently defined,
  382.           ffffaaaallllsssseeee if not; thus:
  383.  
  384.                ifdef A | B | C
  385.  
  386.           ...is ttttrrrruuuueeee if any of the symbols A, B, and C is defined,
  387.           and:
  388.  
  389.                ifdef A & B & C
  390.  
  391.  
  392.  
  393.      Page 6                                          (printed 6/30/95)
  394.  
  395.  
  396.  
  397.  
  398.  
  399.  
  400.      PPPPCCCCAAAALLLL((((1111))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   PPPPCCCCAAAALLLL((((1111))))
  401.  
  402.  
  403.  
  404.           ...is ttttrrrruuuueeee if they all are.  Note that iiiiffffnnnnddddeeeeffff <<<<eeeexxxxpppprrrr>>>> is
  405.           equivalent to iiiiffffddddeeeeffff !!!!(((( <<<<eeeexxxxpppprrrr>>>> ))))....
  406.  
  407.           TTTThhhheeee MMMMoooooooonnnn FFFFiiiilllleeee
  408.  
  409.           If a file of the name ._m_o_o_n## (_m_o_o_n##._d_a_t under MS-DOS),
  410.           where ######## is the last two digits of the calendar year, exists
  411.           in the same directory as the date file (or in the directory
  412.           where _p_c_a_l resides), _p_c_a_l uses the information contained
  413.           within to calculate the phase of the moon.  If no such file
  414.           exists, _p_c_a_l uses an approximate algorithm.
  415.  
  416.           Entries in the moon file must conform to the following
  417.           syntax:
  418.  
  419.           If the ----AAAA option (American date formats, the default) is
  420.           given:
  421.  
  422.                <quarter> <month><sep><day> {<hour><sep><min>}
  423.  
  424.           If the ----EEEE option (European date formats) is given:
  425.  
  426.                <quarter> <day><sep><month> {<hour><sep><min>}
  427.  
  428.           Where:
  429.  
  430.                <quarter> := ``nm'', ``fq'' or ``1q'', ``fm'', ``3q'' or ``lq'' (new moon,
  431.                               first quarter, full moon, last quarter)
  432.                <hour>         := number 0-23 (24-hour clock)
  433.                <min>          := number 0-59
  434.  
  435.           This file must contain entries for all quarter moons in the
  436.           year, in chronological order; if any errors are encountered,
  437.           _p_c_a_l will revert to using its default algorithm.
  438.  
  439.           As in the date file, comments start with `#' and run through
  440.           the end of the given line.
  441.  
  442.           OOOOppppttttiiiioooonnnnssss
  443.  
  444.           _P_c_a_l has many options:
  445.  
  446.           ----eeee          Prints an empty calendar.  Do not print entries
  447.                       from a ._c_a_l_e_n_d_a_r file.
  448.  
  449.           ----ffff _c_a_l      Directs _p_c_a_l to use the file name _c_a_l as the
  450.                       input file in place of the default ._c_a_l_e_n_d_a_r
  451.                       file.  Note that the search rules are different
  452.                       when ----ffff is used.  If _c_a_l is an absolute file
  453.                       name (i.e., starting with a `/'), then _p_c_a_l
  454.                       attempts to open only that file.  Otherwise,
  455.                       _p_c_a_l looks for _c_a_l in the current directory,
  456.  
  457.  
  458.  
  459.      Page 7                                          (printed 6/30/95)
  460.  
  461.  
  462.  
  463.  
  464.  
  465.  
  466.      PPPPCCCCAAAALLLL((((1111))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   PPPPCCCCAAAALLLL((((1111))))
  467.  
  468.  
  469.  
  470.                       then in the directory indicated by the
  471.                       environment variable PPPPCCCCAAAALLLL____DDDDIIIIRRRR (if defined), and
  472.                       finally in the directory where the _p_c_a_l
  473.                       executable resides.  If the given _c_a_l file is
  474.                       not found, an error results.
  475.  
  476.           ----oooo _f_i_l_e     Directs _p_c_a_l to write the output to _f_i_l_e instead
  477.                       of to stdout.
  478.  
  479.           ----llll          Causes the output to be in landscape mode
  480.                       (default).  This also resets the x- and y-axis
  481.                       scaling and translation factors to the defaults
  482.                       for landscape mode.
  483.  
  484.           ----pppp          Causes the output to be in portrait mode.  This
  485.                       also resets the x- and y-axis scaling and
  486.                       translation factors to the defaults for portrait
  487.                       mode.
  488.  
  489.           ----jjjj          Causes the Julian date (day of year) to be
  490.                       printed in each calendar box.
  491.  
  492.           ----JJJJ          Causes the Julian date and the number of days
  493.                       remaining in the year to be printed in each
  494.                       calendar box.
  495.  
  496.           ----mmmm          Causes moon icons to be printed on dates
  497.                       corresponding to new, half, and full moons (the
  498.                       default is that no moons are printed).
  499.  
  500.           ----MMMM          Causes moon icons to be printed on all dates
  501.                       (the default is that no moons are printed).
  502.  
  503.           ----bbbb _d_a_y |||| aaaallllllll
  504.                       Causes all dates falling on weekday _d_a_y to be
  505.                       printed in black; ----bbbb aaaallllllll causes all weekdays to
  506.                       be printed in black.
  507.  
  508.           ----gggg _d_a_y |||| aaaallllllll
  509.                       Causes all dates falling on weekday _d_a_y to be
  510.                       printed in gray; ----gggg aaaallllllll causes all weekdays to
  511.                       be printed in gray.
  512.  
  513.                       The default for the ----bbbb and ----gggg options is to
  514.                       print Saturdays and Sundays in gray and other
  515.                       days, unless flagged as holidays, in black.
  516.  
  517.           ----OOOO          Causes ``gray'' dates to be printed as outlined
  518.                       characters.
  519.  
  520.           ----GGGG          Causes ``gray'' dates to be printed as outlined
  521.                       characters filled with gray.
  522.  
  523.  
  524.  
  525.      Page 8                                          (printed 6/30/95)
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532.      PPPPCCCCAAAALLLL((((1111))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   PPPPCCCCAAAALLLL((((1111))))
  533.  
  534.  
  535.  
  536.           ----ssss{_d_a_t_e}{/_f_i_l_l}
  537.                       Overrides the default values for date and/or
  538.                       fill box shading.  These values must be in the
  539.                       range 0.0 (black) through 1.0 (white); they may
  540.                       be set independently of each other.  The default
  541.                       values are 0.8 for dates and 0.9 for empty
  542.                       boxes.
  543.  
  544.           ----FFFF _d_a_y      Selects weekday _d_a_y as the first day of the
  545.                       week.  The given day will appear in the left-
  546.                       most column of the calendar.
  547.  
  548.           ----AAAA          Directs _p_c_a_l to use American date conventions
  549.                       mmmmmmmm////dddddddd{{{{////yyyyyyyy}}}} and mmmmoooonnnntttthhhh dddddddd ) when parsing the date
  550.                       file (default).
  551.  
  552.           ----EEEE          Directs _p_c_a_l to use European date conventions
  553.                       dddddddd////mmmmmmmm{{{{////yyyyyyyy}}}} and dddddddd mmmmoooonnnntttthhhh ) when parsing the date
  554.                       file.
  555.  
  556.           ----XXXX _x_t_r_a_n_s   Specifies the x-axis translation value for
  557.                       positioning the output on the page.
  558.  
  559.           ----YYYY _y_t_r_a_n_s   Specifies the y-axis translation value for
  560.                       positioning the output on the page.
  561.  
  562.           ----xxxx _x_s_c_a_l_e   Specifies the x-axis scaling factor for the
  563.                       calendar size.
  564.  
  565.           ----yyyy _y_s_c_a_l_e   Specifies the y-axis scaling factor for the
  566.                       calendar size.
  567.  
  568.           ----tttt _t_i_t_l_e__f_o_n_t
  569.                       Specifies the name of a font to use to print the
  570.                       month name and year at the top of the calendar,
  571.                       the foot strings, and the notes box heading.
  572.                       For example, ppppccccaaaallll ----tttt TTTTiiiimmmmeeeessss----RRRRoooommmmaaaannnn.
  573.  
  574.           ----dddd _d_a_y__f_o_n_t Similar to the ----tttt option, but selects the font
  575.                       used to print the day numbers and weekday names.
  576.  
  577.           ----nnnn _t_e_x_t__f_o_n_t[////_s_i_z_e]
  578.                       Similar to the ----tttt option, but selects the font
  579.                       used to print the text inside each day and in
  580.                       the notes block.  The user may also select the
  581.                       font size; ppppccccaaaallll ----nnnn HHHHeeeellllvvvveeeettttiiiiccccaaaa////8888 sets the font to
  582.                       8-point Helvetica.
  583.  
  584.           ----DDDD _s_y_m_b_o_l   Defines the named symbol prior to reading the
  585.                       date file.
  586.  
  587.           ----UUUU _s_y_m_b_o_l   Un-defines the named symbol prior to reading the
  588.  
  589.  
  590.  
  591.      Page 9                                          (printed 6/30/95)
  592.  
  593.  
  594.  
  595.  
  596.  
  597.  
  598.      PPPPCCCCAAAALLLL((((1111))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   PPPPCCCCAAAALLLL((((1111))))
  599.  
  600.  
  601.  
  602.                       date file.
  603.  
  604.           ----LLLL _s_t_r_i_n_g   Causes the accompanying string to be printed as
  605.                       a left-justified footer.  Format specifiers
  606.                       denoting the month and/or year may appear in the
  607.                       string; the appropriate values will be
  608.                       substituted upon printing.
  609.  
  610.           ----CCCC _s_t_r_i_n_g   Similar to ----LLLL, but causes the accompanying
  611.                       string to be printed as a centered footer.
  612.  
  613.           ----RRRR _s_t_r_i_n_g   Similar to ----LLLL, but causes the accompanying
  614.                       string to be printed as a right-justified
  615.                       footer.
  616.  
  617.           ----NNNN _s_t_r_i_n_g   Causes the accompanying string to be printed as
  618.                       the heading for the "Notes" box.  Note, however,
  619.                       that _p_c_a_l makes no attempt to ensure that it
  620.                       fits.
  621.  
  622.           ----BBBB          Causes _p_c_a_l to leave unused calendar boxes blank
  623.                       (default is gray).
  624.  
  625.           ----SSSS          Causes _p_c_a_l to suppress printing the small
  626.                       calendars.  See the CCCCAAAAVVVVEEEEAAAATTTTSSSS section for further
  627.                       details.
  628.  
  629.           ----kkkk          Causes _p_c_a_l to print the small calendars in the
  630.                       upper left corner (the default is to print them
  631.                       at the lower right).
  632.  
  633.           ----KKKK          Causes _p_c_a_l to print the small calendar for the
  634.                       previous month in the upper left corner and the
  635.                       next month in the lower right (the default is to
  636.                       print both at the lower right).
  637.  
  638.           ----wwww          Causes _p_c_a_l to print a calendar for 12
  639.                       consecutive months: 3 rows / 4 columns in
  640.                       landscape mode, 4 rows / 3 columns in portrait
  641.                       mode.  See the CCCCAAAAVVVVEEEEAAAATTTTSSSS section for details on
  642.                       the use of this option with other options.
  643.  
  644.           ----cccc          Causes _p_c_a_l to generate a date file suitable for
  645.                       use as input to the Un*x _c_a_l_e_n_d_a_r(_1) utility.
  646.                       The normal PostScript output is suppressed.
  647.  
  648.           ----IIII          Resets all parameters to the program defaults.
  649.  
  650.           ----hhhh          Causes _p_c_a_l to write version information,
  651.                       parameter usage message, and full explanation of
  652.                       options and file formats (to _s_t_d_o_u_t) and
  653.                       terminate.
  654.  
  655.  
  656.  
  657.      Page 10                                         (printed 6/30/95)
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.      PPPPCCCCAAAALLLL((((1111))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   PPPPCCCCAAAALLLL((((1111))))
  665.  
  666.  
  667.  
  668.           ----uuuu          Causes _p_c_a_l to write version information and
  669.                       parameter usage message (to _s_t_d_o_u_t) and
  670.                       terminate.
  671.  
  672.           ----vvvv          Causes _p_c_a_l to write version information only
  673.                       (to _s_t_d_o_u_t) and terminate.
  674.  
  675.           Any option which normally takes an argument may be specified
  676.           without the argument in order to reset the value to the
  677.           program default.  Note that while the ----DDDD option alone clears
  678.           all the defined symbols, the ----UUUU option alone has no effect.
  679.           The ---- (or -------- as per System V) argument may be used to
  680.           disambiguate command lines such as:
  681.  
  682.                ppppccccaaaallll ----tttt 9999 99990000
  683.  
  684.           This could be written instead as one of the following:
  685.  
  686.                ppppccccaaaallll ----tttt ---- 9999 99990000
  687.                ppppccccaaaallll ----tttt -------- 9999 99990000
  688.  
  689.           If the environment variable PPPPCCCCAAAALLLL____OOOOPPPPTTTTSSSS is defined, its
  690.           contents are parsed as a command line.  Flags set via
  691.           PPPPCCCCAAAALLLL____OOOOPPPPTTTTSSSS override the program defaults, but are overridden
  692.           by options set via oooopppptttt lines in the ._c_a_l_e_n_d_a_r file or
  693.           explicitly on the command line.
  694.  
  695.      CCCCAAAAVVVVEEEEAAAATTTTSSSS
  696.           The ``workday'' and ``holiday'' keywords are aware of only
  697.           those holidays which have already been flagged at the point
  698.           where they appear.  For example, consider January 1990:
  699.  
  700.                              January 1990
  701.                           S  M Tu  W Th  F  S
  702.                              1  2  3  4  5  6
  703.                           7  8  9 10 11 12 13
  704.                          14 15 16 17 18 19 20
  705.                          21 22 23 24 25 26 27
  706.                          28 29 30 31
  707.  
  708.           If the ._c_a_l_e_n_d_a_r file looked like this:
  709.  
  710.                workday on_or_before all 15   payday
  711.                3rd Mon in Jan*               MLK day
  712.  
  713.           ... then _p_c_a_l would mark the 15th as ``payday'' since at
  714.           that point in the ._c_a_l_e_n_d_a_r file it has no way of knowing
  715.           that January 15th will later be flagged as a holiday.  If
  716.           the two lines were reversed, such that the holiday preceded
  717.           the ``workday'' wildcard, then _p_c_a_l would work as intended,
  718.           marking instead the 12th as ``payday''.  Also, beware of
  719.           year boundaries which affect the handling of all of the day
  720.  
  721.  
  722.  
  723.      Page 11                                         (printed 6/30/95)
  724.  
  725.  
  726.  
  727.  
  728.  
  729.  
  730.      PPPPCCCCAAAALLLL((((1111))))                   UUUUNNNNIIIIXXXX SSSSyyyysssstttteeeemmmm VVVV                   PPPPCCCCAAAALLLL((((1111))))
  731.  
  732.  
  733.  
  734.           wildcard keywords.  In general, it is best to place monthly
  735.           wildcards such as the example above at the end of each year
  736.           to achieve the desired effect.
  737.  
  738.           When the ----wwww and ----pppp options are used together, _p_c_a_l revises
  739.           the y-scale factor in order to use the entire portrait page;
  740.           therefore, the user should avoid using use the ----yyyy option
  741.           when using both the ----wwww and ----pppp options.  Use of the ----wwww option
  742.           in any case effectively disables the ----mmmm, ----MMMM, ----jjjj, and ----JJJJ
  743.           options.
  744.  
  745.           The output of the ----cccc option may be used as input to
  746.           subsequent runs of _p_c_a_l.  Note, however, that oooopppptttt lines
  747.           (except for an automatic oooopppptttt ----[[[[AAAA||||EEEE]]]]), comments, ``note''
  748.           text, and iiiiffffddddeeeeffff'd-out source will be lost.
  749.  
  750.           The ----SSSS option interacts with nnnnooootttteeee{{{{////<<<<nnnnuuuummmmbbbbeeeerrrr>>>>}}}}; if used, it
  751.           should be specified either on the command line or prior to
  752.           the first nnnnooootttteeee line in the date file.
  753.  
  754.      SSSSEEEEEEEE AAAALLLLSSSSOOOO
  755.           cal(1), calendar(1).
  756.  
  757.      AAAAUUUUTTTTHHHHOOOORRRRSSSS
  758.           The original PostScript code to generate the calendars was
  759.           written by Patrick Wood (Copyright (c) 1987 by Patrick Wood
  760.           of Pipeline Associates, Inc.), and authorized for
  761.           modification and redistribution.  The calendar file
  762.           inclusion code was originally written in _b_s(1) by Bill Vogel
  763.           of AT&T.  Patrick's original PostScript was modified and
  764.           enhanced several times by others whose names have
  765.           regrettably been lost.  Ken Keirnan of Pacific Bell
  766.           assembled the original ``C'' version upon which this is
  767.           based; additional modifications and enhancements are the
  768.           work of Joseph P. Larson, Ed Hand, Andrew W. Rogers, Mark
  769.           Kantrowitz, Joe Brownlee, Jamie Zawinski, Richard L. Dyson,
  770.           Bill Hogsett, Floyd Miller, Andy Fyfe, and Geoff Kuenning.
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.  
  788.  
  789.      Page 12                                         (printed 6/30/95)
  790.  
  791.  
  792.  
  793.